package com.ymttest.common.enums;

/**
 * 订单状态
 */
public enum OrderStatusEnum {
	/**
	 * 未知 0
	 */
	Unkown(0),

	/**
	 * 订单确立/（未付款）1
	 */
	OrderEstablish(1),

	/**
	 * 已付款 2
	 */
	AccountPaid(2),

	/**
	 * 已发货 3
	 */
	Shipped(3),

	/**
	 * 确认收货 4
	 */
	Received(4),

	/**
	 * 买家取消订单 12
	 */
	UserAcceptCancel(12),

	/**
	 * 卖家取消订单 13
	 */
	SellerAcceptCancel(13),

	/**
	 * 系统自动取消 18
	 */
	SystemCancel(18),

	/**
	 * 申请补款中 16
	 */
	ApplyForPostPay(16),

	/**
	 * 订单补款完成(等待发货) 17
	 */
	SellerAccept(17),

	// /#region 订单状态扩展，只是为了区分重叠状态,方便发送通知和邮件处理
	/**
	 * 自动取消订单 100
	 */
	AutoCancel(100),
	/**
	 * 已确认接单(等待发起补款) 101
	 */
	OrderPostPay(101),
	/**
	 * 客服取消订单 102
	 */
	CustomerCancel(102),
	/**
	 * 修改订单折扣 103
	 */
	ChangeDiscount(103),
	/**
	 * 卖家退款 104
	 */
	SellerRefund(104),
	/**
	 * 买家延长收货 105
	 */
	BuyerDelayReceiveTime(105);
	// /#endregion

	private int intValue;
	private static java.util.HashMap<Integer, OrderStatusEnum> mappings;

	private synchronized static java.util.HashMap<Integer, OrderStatusEnum> getMappings() {
		if (mappings == null) {
			mappings = new java.util.HashMap<Integer, OrderStatusEnum>();
		}
		return mappings;
	}

	private OrderStatusEnum(int value) {
		intValue = value;
		OrderStatusEnum.getMappings().put(value, this);
	}

	public int getValue() {
		return intValue;
	}

	public static OrderStatusEnum forValue(int value) {
		return getMappings().get(value);
	}
}